//package com.dfs.parent.common.sharding;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.shardingsphere.api.sharding.standard.PreciseShardingAlgorithm;
//import org.apache.shardingsphere.api.sharding.standard.PreciseShardingValue;
//
//import java.util.Collection;
//
///**
// * @Description TODO
// * @Author dahong
// * @Date 2024/3/27 04:02
// */
//@Slf4j
//public class DatabasePreciseAlgorithm implements PreciseShardingAlgorithm<Long> {
//    @Override
//    public String doSharding(Collection<String> databaseNames, PreciseShardingValue<Long> shardingValue) {
//        //获取分片列的值
//        Long value = shardingValue.getValue();
//        if(value<50L){
//            for (String each : databaseNames) {
//                if (each.endsWith("0")) {
//                    return each;
//                }
//            }
//        }else{
//            for (String each : databaseNames) {
//                if (each.endsWith("1")) {
//                    return each;
//                }
//            }
//        }
////        //获得虚拟表名
////        String logicTableName = preciseShardingValue.getLogicTableName();
////        //实现course_$->{cid%2+1} 取模分片算法
////        long index = shardingValue.getValue() % databaseNames.size();
////        //拼接获得实际表名
////        String actualTableName = logicTableName + index;
////        //判断配置的实际表集合中是否有该实际表名
////        if(availableTargetNames.contains(actualTableName)) {
////            return actualTableName;
////        }
//        return null;
//
//    }
////     /**
////         * tableNames 对应分片库中所有分片表的集合
////         * shardingValue 为分片属性，其中 logicTableName 为逻辑表，columnName 分片健（字段），value 为从 SQL 中解析出的分片健的值
////         */
////        for (String tableName : tableNames) {
////            /**
////             * 取模算法，分片健 % 表数量
////             */
////            String value = shardingValue.getValue() % tableNames.size() + "";
////            if (tableName.endsWith(value)) {
////                return tableName;
////            }
////        }
////
//}
